//
//  NSNotificationCenter+DogLegs.h
//  DogeLegs
//
//  Created by 宋华 on 2017/8/16.
//  Copyright © 2017年 宋华. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSNotificationCenter (DogLegs)

+ (void)removeAllNotification:(id)target;
//COMMAND连接状态变化通知
//NSDictionary定义
//定义如下:key=@"ConnStatus" value=numberWithInt，整形，0为连接，1为未连接
#define CmdConnStatusChangeNotification @"CmdConnStatusChangeNotification"
+ (void)addCmdConnStatusChangeNotification:(id)target action:(SEL)action;
+ (void)postCmdConnStatusChangeNotification:(NSDictionary *)userInfo;
+ (void)removeCmdConnStatusChangeNotification:(id)target;


#define GetUserConfigDoneNotification @"GetUserConfigDoneNotification"
+ (void)addGetUserConfigDoneNotification:(id)target action:(SEL)action;

+ (void)postGetUserConfigDoneNotification:(NSDictionary *)userInfo;

+ (void)removeGetUserConfigDoneNotification:(id)target;

#pragma mark -----登录状态通知--------
// 登录状态切换通知
#define SwitchLoginStatusNotification @"SwitchLoginStatusNotification"
+ (void)addSwitchLoginStatusNF:(id)target action:(SEL)action;

+ (void)postSwitchLoginStatusNotification:(NSDictionary *)userInfo;

+ (void)removeSwitchLoginStatusNotification:(id)target;

// 退出状态通知
#define SwitchLogoutStatusNotification @"SwitchLogoutStatusNotification"
+ (void)addSwitchLogoutStatusNF:(id)target action:(SEL)action;

+ (void)postSwitchLogoutStatusNotification:(NSDictionary *)userInfo;

+ (void)removeSwitchLogoutStatusNotification:(id)target;


//创建密码和验证成功
#define CreatePassWordNotification @"CreatePassWordNotification"
+ (void)addCreatePwNF:(id)target action:(SEL)action;

+ (void)postCreatePwNF:(NSDictionary *)userInfo;

+ (void)removeCreatePwNF:(id)target;

//获取地址成功
#define GetUserAddressNotification @"GetUserAddressNotification"
+ (void)addUserAddressNF:(id)target action:(SEL)action;

+ (void)postUserAddressNF:(NSDictionary *)userInfo;

+ (void)removeUserAddressNF:(id)target;

#pragma mark        ------- 消息模块通知--------
// 消息列表消息通知
#define MessageListMsgNotification @"MessageListMsgNotification"
+ (void)addMessageListMsgNF:(id)target action:(SEL)action;
+ (void)postMessageListMsgNotification:(NSDictionary *)userInfo;
+ (void)removeMessageListMsgNotification:(id)target;

// 消息聊天界面
#define MessageChatMsgNotification @"MessageChatMsgNotification"
+ (void)addMessageChatMsgNF:(id)target action:(SEL)action;
+ (void)postMessageChatMsgNotification:(NSDictionary *)userInfo;
+ (void)removeMessageChatMsgNotification:(id)target;

#pragma mark - 语音模块
//录音结束通知
//key=path,length(时长),reason,1为取消录音，2为录音正常结束，3为录音非正常结束
#define AudioRecorderDidFinishNotification @"AudioRecorderDidFinishNotification"
+ (void)addAudioRecorderDidFinishNotification:(id)target action:(SEL)action;
+ (void)postAudioRecorderDidFinishNotification:(NSDictionary *)userInfo;
+ (void)removeAudioRecorderDidFinishNotification:(id)target;

//音频播放结束通知
//key=path
#define AudioPlayDidFinishNotification @"AudioPlayDidFinishNotification"
+ (void)addAudioPlayDidFinishNotification:(id)target action:(SEL)action;
+ (void)postAudioPlayDidFinishNotification;
+ (void)removeAudioPlayDidFinishNotification:(id)target;

//音量变化通知
//key=volume,
#define MICVolumeChangeNotification @"MICVolumeChangeNotification"
+ (void)addMICVolumeChangeNotification:(id)target action:(SEL)action;
+ (void)postMICVolumeChangeNotification:(NSDictionary *)userInfo;
+ (void)removeMICVolumeChangeNotification:(id)target;


//音量变化通知
//key=volume,
#define OneVoiceCellPlayerNotification @"OneVoiceCellPlayerNotification"
+ (void)addOneVoiceCellPlayerNotification:(id)target action:(SEL)action;
+ (void)postOneVoiceCellPlayerNotification:(NSDictionary *)userInfo;
+ (void)removeOneVoiceCellPlayerNotification:(id)target;


@end
